尽管开源大型语言模型(LLM)(例如 LLaMA)取得了进步,但它们在工具使用能力方面仍然受到很大限制,即使用外部工具(API)来执行人类指令。原因是当前的指令调整主要侧重于基本语言任务,但忽略了工具使用领域。这与最先进(SOTA)闭源 LLM(例如 ChatGPT)的出色工具使用能力形成鲜明对比。为了弥补这一差距,我们引入了 ToolLLM,这是一个通用的工具使用框架,涵盖数据构建、模型训练和评估。我们首先介绍 ToolBench,这是一个用于工具使用的指令调整数据集,它是使用 ChatGPT 自动构建的。具体而言,构建可分为三个阶段:(i)API 收集:我们从 RapidAPI Hub 收集了 49 个类别的 16,464 个真实 RESTful API; (ii) 指令生成:我们提示 ChatGPT 生成涉及这些 API 的各种指令,涵盖单工具和多工具场景;(iii) 解决方案路径注释:我们使用 ChatGPT 为每条指令搜索有效的解决方案路径(API 调用链)。为了增强 LLM 的推理能力,我们开发了一种新颖的基于深度优先搜索的决策树算法。它使 LLM 能够评估多个推理轨迹并扩大搜索空间。此外,为了评估 LLM 的工具使用能力,我们开发了一个自动评估器:ToolEval。基于 ToolBench,我们对 LLaMA 进行微调以获得 LLM ToolLLaMA,并为其配备神经 API 检索器,为每条指令推荐合适的 API。实验表明,ToolLLaMA 表现出执行复杂指令和推广到未见过的 API 的卓越能力,并且表现出与 ChatGPT 相当的性能。我们的 ToolLLaMA 还在分布外工具使用数据集 APIBench 中展示了强大的零样本泛化能力。代码、训练模型和演示均可在 https://github.com/OpenBMB/ToolBench 上公开获取。
主要关键词